Skip to main content

Controller 与 HTTP 接口实现

  • Controller的作用
  • DTO 的作用
  • 实现完整的HTTP接口定义

Controller 概念

Controllers are responsible for handling incoming requests and returning responses to the client. 负责处理输入的 request 请求并向客户端进行相应的。

Alternate text

MVC 模型

Alternate text

三层结构

Alternate text

DTO 的概念

数据传输对象(DTO)(Data Transfer Object),是一种设计模式之间传输数据的软件应用系统。数据传输目标往往是数据访问对象从数据库中检索数据。数据传输对象与数据交互对象或数据访问对象之间的差异是一个以不具有任何行为除了存储和检索的数据(访问和存取器)。

Alternate text

dtos/create-user.dto.ts
import { ApiProperty } from '@nestjs/swagger';

export class CreateUserDto {

/**
* 手机号(系统唯一)
*/
@ApiProperty({ example: '13611177421' })
readonly phoneNumber: string;

@ApiProperty({ example: '艾斯' })
name: string;

@ApiProperty({ example: '123456' })
password: string;

@ApiProperty({ example: 'answer0932@163.com' })
email: string;

}
userController.ts
 export class UserController {
@ApiResponse({
status: HttpStatus.CREATED,
type: CreateUserDto,
})
create(@Body() createUserDto: CreateUserDto) {
return this.userService.create(createUserDto);
}
}